Show language: C# VB.NET Both

Programmatically

Full Import

Also see this page for other programmatic import/indexing options.

This Windows Forms example is intended to demonstrate a basic programmatic implementation. From the button click event, the website source is imported and the index fully built ready for searching.

Reference these DLL's in your project, KeyotiX.SearchEngine.Core, KeyotiX.SearchEngine.License, KeyotiX.Text.LemmaGenerator.dll, KeyotiX.Text.MSOffice.dll - where X is 2 for .NET 2 and 4 for .NET 4

C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Keyoti.SearchEngine;
using Keyoti.SearchEngine.Index;
using Keyoti.SearchEngine.DataAccess.IndexableSourceRecords;
using Keyoti.SearchEngine.Search;

namespace WindowsApplication
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();

		}

		private void button1_Click(object sender, EventArgs e)
		{
			Configuration configuration = new Configuration();
			configuration.IndexDirectory = "C:/YourSite/IndexDirectory";


            //---Import pages from website.
			DocumentIndex documentIndex = new DocumentIndex(configuration);
			try{
				documentIndex.ImportWebsite("http://www.yoursite.com");
			} finally {
				documentIndex.Close();
			}



            //---Search Index
			SearchAgent sa = new SearchAgent("EnterLicenseKeyHere", configuration);
			SearchResult res = sa.Search("search terms", 1, 10); //res now holds a collection of ResultItem objects

		}
	}
}
VB.NET
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports Keyoti.SearchEngine
Imports Keyoti.SearchEngine.Index
Imports Keyoti.SearchEngine.DataAccess.IndexableSourceRecords
Imports Keyoti.SearchEngine.Search

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim configuration As Keyoti.SearchEngine.Configuration = New Configuration
        configuration.IndexDirectory = "C:/YourSite/IndexDirectory"

'---Import pages from website.
        Dim documentIndex As DocumentIndex = New DocumentIndex(configuration)
		Try
			documentIndex.ImportWebsite("http://www.yoursite.com")
		Finally 
			documentIndex.Close()
		End Try



'---Search Index
        Dim sa As SearchAgent = New SearchAgent("EnterLicenseKeyHere", configuration)
        Dim res As SearchResult = sa.Search("search terms", 1, 10) 'res now holds a collection of ResultItem objects

        End Sub
End Class


The try-finally constructs ensure that the index is closed even if an exception occurs.

To reimport the source (to freshen the index) use

documentIndex.ReimportIndexableSources()

To reindex one specific source, obtain the IndexableSourceRecord from:

documentIndex.GetIndexableSourceRecords()

and pass the IndexableSourceRecord to

documentIndex.Import(sourceRecordFromTheList)